<?php

namespace app\api\controller;

use app\common\controller\Api;

/**
 * 首页接口
 */
class Index extends Api
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];

    /**
     * 首页
     *
     */
    public function index()
    {
        $this->success('请求成功');
    }
    public function urlRedirect(){
        if(isset($_GET['echostr'])){
            $this->check();
        }else{
            $this->fxx();
        }

//        file_put_contents($file, "12312312312  \r\n\r\n\r\n",FILE_APPEND);
//        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//        file_put_contents($file, '11111111\r\n\r\n\r\n',FILE_APPEND);
//        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
//        $fromUsername = (string)$postObj->FromUserName;
//        $EventKey = trim((string)$postObj->EventKey);
//        $keyArray = explode("_", $EventKey);
//        if (count($keyArray) == 1){   //已关注者扫描
//            $this->sendMessage($fromUsername, $EventKey);
//        }else{
//            $this->sendMessage($fromUsername, $keyArray[1]);
//        }
    }
    function check(){

        // 获取访问时提交过来的加密字符串
        $signature = $_GET["signature"];
        // 时间戳
        $timestamp = $_GET["timestamp"];
        // 访问时的随机数
        $nonce = $_GET["nonce"];

        $token = "weixin";

        $tmpArr = array($token,$timestamp,$nonce);
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode($tmpArr);
        $tmpStr = sha1($tmpStr);


        if($tmpStr == $signature){
            header("Content-Type:text");
            //echo "success:";
            echo $_GET['echostr'];
        }
    }
    function fxx(){
        $file = ROOT_PATH."log.txt";
        file_put_contents($file,"123",FILE_APPEND);
        // 接受由微信服务器传递过来的POST数据，因为微信传递的是一个XML字符串，所以需要使用下面的函数接受
        // $_POST只能接收由表单一类，提交的PHP可解释的POST数据
        // $GLOBALS["HTTP_RAW_POST_DATA"] 是为了防止，微信的传输格式，PHP无法解析
        // 该全局变量可以获取所有请求POST传递过来的数据，然后在交给其他函数解析
        $postStr = file_get_contents("php://input");
        file_put_contents($file,$postStr."\r\n\r\n",FILE_APPEND);
        // simplexml_load_string() 函数把一个XML字符串载入到对象中
        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

        //===================================================================================================
        // 为了检查数据，将接收到请求写到文件中
        //===================================================================================================
        // 将获取到的内容整理，然后整合成字符串
        $str  = "ToUserName:".$postObj->ToUserName."\r\n";
        $str .= "FromUserName:".$postObj->FromUserName."\r\n";
        $str .= "CreateTime:".$postObj->CreateTime."\r\n";
        $str .= "MsgType:".$postObj->MsgType."\r\n";
        $str .= "Content:".$postObj->EventKey."\r\n";
        $str .= "MsgId:".$postObj->MsgId."\r\n\r\n";
        // 把整合的字符串写到一个文件中

        file_put_contents($file,$str,FILE_APPEND);

        //===================================================================================================
        // 相应一个关注事件
        //===================================================================================================
        if($postObj->Event=="subscribe"){
            $textTpl = "<xml>
                           <ToUserName><![CDATA[%s]]></ToUserName>
                           <FromUserName><![CDATA[%s]]></FromUserName>
                           <CreateTime>%s</CreateTime>
                           <MsgType><![CDATA[text]]></MsgType>
                           <Content><![CDATA[%s]]></Content>
                         </xml>";

            $content = "亲，用户友好度应急管理办欢迎您！我们将随时注意用户的意见和投诉信息。您可以点击下方链接进行打分和留言："."\n\n"."<a href='http://gzh.huixiangxuanyu.com/'>对我们进行评价</a>";
            $result = sprintf($textTpl, $postObj->FromUserName, $postObj->ToUserName, time(), $content);
            echo $result;
            //$contentStr = "Hi,欢迎关注海仙日用百货!"."\n"."回复数字'1',了解店铺地址."."\n"."回复数字'2',了解商品种类.";
         }
        //===================================================================================================
        // 相应一个被动回复
        //===================================================================================================
//        if($postObj->MsgType == "text"){
//            $textTpl = "<xml>
//            <ToUserName><![CDATA[%s]]></ToUserName>
//            <FromUserName><![CDATA[%s]]></FromUserName>
//            <CreateTime>%s</CreateTime>
//            <MsgType><![CDATA[text]]></MsgType>
//            <Content><![CDATA[%s]]></Content>
//            </xml>";
//
//            $content = "你给我发了信息：".$postObj->Content;
//            $result = sprintf($textTpl, $postObj->FromUserName, $postObj->ToUserName, time(), $content);
//            echo $result;
//        }

        //===================================================================================================
        // 接收一个回复，并主动给用户回复一条信息
        //===================================================================================================


        // $str = "access_token:".$res['access_token']."\r\n";
        // $str .= "expires_in:".$res['expires_in']."\r\n\r\n";
        // file_put_contents("./test.txt",$res['access_token'],FILE_APPEND);


        exit;
    }
}
